package com.yic.module.base.api.item;

import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.yic.module.base.api.item.dto.ItemRespDTO;
import com.yic.module.base.convert.item.ItemConvert;
import com.yic.module.base.dal.dataobject.item.ItemDO;
import com.yic.module.base.service.item.ItemService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;

/**
 * @ClassName ItemApiImpl
 * @Description 产品通用信息API实现
 * @Author Lijx
 * @Date 2023/11/18 8:26
 * @Version 1.0
 */
@Service
public class ItemApiImpl implements ItemApi{

    @Resource
    private ItemService itemService;

    @Override
    public ItemRespDTO getItem(Long id) {
        if (ObjectUtil.isNull(id)){
            return null;
        }
        ItemDO item = itemService.getItem(id);
        return ItemConvert.INSTANCE.convert01(item);
    }

    @Override
    public ItemRespDTO getItem(String code) {
        if (StrUtil.isBlank(code)) {
            return null;
        }
        ItemDO item = itemService.getItem(code);
        return ItemConvert.INSTANCE.convert01(item);
    }

    @Override
    public ItemRespDTO getItemByErpId(String erpItemId) {
        if (StrUtil.isBlank(erpItemId)) {
            return null;
        }
        ItemDO item = itemService.getItemByErpId(erpItemId);
        return ItemConvert.INSTANCE.convert01(item);
    }

    @Override
    public List<ItemRespDTO> getItemListByErpId(Collection<String> erpItemIds) {
        if (CollectionUtil.isEmpty(erpItemIds)) {
            return Collections.emptyList();
        }
        List<ItemDO> list = itemService.getItemListByErpId(erpItemIds);
        return ItemConvert.INSTANCE.convertList03(list);
    }

    @Override
    public List<ItemRespDTO> getItemList(Set<Long> itemIds) {
        if (CollectionUtil.isEmpty(itemIds)) {
            return Collections.emptyList();
        }
        List<ItemDO> itemList = itemService.getItemList(itemIds);
        return ItemConvert.INSTANCE.convertList03(itemList);
    }
}
